The present disclosure generally relates to distributed processing systems, and more particularly relates to managing transactions within a distributed processing system.
Distributed transaction execution generally requires complex control systems to guarantee the correctness of the transaction. Compared with executing transactions on a single server, distributed transactions are difficult to implement as they require all participating servers to have a consistent data state after committing a distributed transaction. This implies atomicity for a single transaction, where the transaction must unanimously commit or abort on all servers. For parallel distributed transactions, this requirement further implies that transactions running on distributed servers should commit in the same order as if they are running in a certain sequential order. Achieving these requirements typically involves expensive distributed committing protocols. Existing solutions include traditional distributed two-phase commit protocol and deterministic parallel transactions. However, these approaches are all active in the sense that both client and servers need to actively participate into the committing protocol through message passing. As a result, both clients and servers consume significant resources in executing these protocols, which also limits the throughput and response time one can achieve with this type of active distributed committing protocol.